home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / exampleCode / audio / reverb / README < prev    next >
Encoding:
Text File  |  1994-08-02  |  6.3 KB  |  144 lines

  1.  
  2.              ~4Dgifts/toolbox/src/exampleCode/audio/reverb README
  3.   
  4.  
  5.          Simulated reverberation for real-time audio input and output.  
  6.  
  7.                            Written by Gints Klimanis 
  8.                        Silicon Graphics Computer Systems
  9.                                      1994
  10.  
  11.  
  12.  
  13.     reverb usage:  -help
  14.                    -verbose
  15.                    -level              0..1
  16.                    -noMonoProcess      each input processed
  17.                    -reverbTime         seconds
  18.                    -noPrime
  19.                    -type               {comb, allpass,
  20.                                        schroeder1, schroeder2,
  21.                                        chamberlin,
  22.                                        moorer, moorer2,
  23.                                        er7, er19
  24.                                        moorer2er7, moorer2er19}
  25.  
  26.  
  27.  
  28.  
  29.  
  30.                  all of the documentation contained herein is 
  31.                 lifted directly from the reverb.c source file.
  32.  
  33.  
  34.   
  35.     The algorithms generate room ambience rather than a realistic room 
  36.     response.  For proper operation, ensure the input and output sampling 
  37.     rates are equal and neither changes over time.
  38.   
  39.         The most advanced algorithm in this code is moorer2er19, which
  40.         consumes roughly 50% of a 100 MHz R4000.  
  41.   
  42.         For the pronounced effect, try:
  43.             > reverb -type moorer2er19 -reverbTime 10
  44.   
  45.         For reverberation times > 30 seconds, the decay seems to fizzle out 
  46.         quite abruptly.  The cause is likely caused by single-precision 
  47.         floating point artifacts in the computation of the low-pass filter 
  48.         nested in each comb filter.  
  49.   
  50.         -noMonoProcess      specifies that a reverberator is computed for 
  51.                             each input channel.  Otherwise, all inputs are 
  52.                             summed into a single reverberator.  Algorithm 
  53.                             types 'comb' and 'allpass'  are processed 
  54.                             with a feedback gain of opposite polarity in
  55.                             each of two output channels. 
  56.   
  57.         -reverbTime         default is 8 seconds.  Applies only to comb, 
  58.                             allpass, schroeder2, moorer, moorer2, moorer2er7,
  59.                             moorer2er19 algorithms.  Others have decay time 
  60.                             as specified in design.
  61.   
  62.         -noPrime            prevents reciculated delay buffer lengths from 
  63.                             quantization to prime value.  The "priming" 
  64.                             seems to reduce ringing due to transients such 
  65.                             as snare drum strike and low-level whining in 
  66.                             the presence of input noise, so this parameter 
  67.                             is provided for comparison.
  68.   
  69.         -type:              defaults is moorer2
  70.   
  71.         comb, allpass       comb and all-pass Interpolated Infinite Impulse 
  72.                             Response (IIIR) filters.  
  73.         schroeder1          quint series all-pass filter
  74.         schroeder2          quad parallel comb into dual series all-pass 
  75.                             filters
  76.         chamberlin          quint series all-pass filter
  77.         moorer              Moorer's hex parallel comb filters into single 
  78.                             all-pass filter
  79.         moorer2             hex parallel filtered-comb into single all-pass
  80.                             filters
  81.         er7, er19           early reflections patterns w/7 and 19 taps, 
  82.                             respectively 
  83.         moorer2er7, moorer2er19         early reflections + hex parallel 
  84.                             filtered-comb into single all-pass filters.  
  85.                             Early reflections fed into comb network.  
  86.                             Scatter in 19 tap ER pattern yields algorithm 
  87.                             with significantly less ring excited by 
  88.                             transients such as snare drum strike.
  89.   
  90.         To my ears, moorer2 rings less to transients than moorer2er7, 
  91.         moorer2er19.  However, moorer2er7 and moorer2er19 have smoother 
  92.         decay than moorer2.  Not sure if ringing is caused by an error 
  93.         in my implementation or by a comb-filter quality imposed by the 
  94.         early reflection pattern.   Consider a diffusor other than the 
  95.         early reflection pattern. 
  96.   
  97.     The following references contain detailed discussions of the 
  98.     non-proprietary implementations found in the code in reverb.c:
  99.   
  100.     + Schroeder, M.R. and Logan, B.F., "'Colorless' Artificial Reverberation."
  101.       Journal of the Audio Engineering Society v. 9, n. 3: pp. 192-197, 1962
  102.   
  103.     + Schroeder, M.R. , "Natural Sounding Artificial Reverberation." Journal 
  104.       of the Audio Engineering Society v. 10, n. 3: pp. 219-223, 1962
  105.   
  106.     + Moorer, J.A., "About This Reverberation Business", Foundations of 
  107.       Computer Music, Roads and Strawn, ed.: pp. 605-639, 1985
  108.   
  109.     + Chamberlin, Hal, Musical Applications of Microprocessors, 2nd Ed., 
  110.       Hayden Books, A Division of Howard Sams & Co., Indianapolis, Indiana, 
  111.       pp. 508-512, 1985
  112.   
  113.  
  114.  
  115.  
  116.   
  117.    Manfred Schroeder's conditions for artificial reverberators 
  118.    (lifted from paper):
  119.   
  120.    1) The frequency response must be flat when measured with narrow bands 
  121.       of noise, with the bandwidths corresponding to that of the transients 
  122.       in the sound to be reverberated.  This condition is, of course, 
  123.       fulfilled by reverberators which have a flat response even for 
  124.       sinusoidal excitation.
  125.   
  126.    2) The normal modes of the reverberator must overlap and cover the entire
  127.       audio frequency range.
  128.   
  129.    3) The reverberation times of the individual modes must be equal or 
  130.       nearly equal so that different frequency components of the sound will 
  131.       decay with equal rates.
  132.   
  133.    4) The echo density a short interval after shock excitation must be high
  134.       enough so that individual echos are not resolved by the ear.
  135.   
  136.    5) The echo response must be free from periodicities (flutter echos)
  137.   
  138.    6) The amplitude-frequency response must not exhibit any apparent 
  139.       periodicities.  Periodic or comblike frequency responses produce an 
  140.       unpleasant hollow, reedy or metallic sound quality and give the 
  141.       impression that the sound is transmitted through a hollow tube or 
  142.       barrel.
  143.  
  144.